package com.open.httpauto.http;

import lombok.Data;

import java.io.Serializable;

/**
 * 配置全局开发者信息，用于通讯请求时
 * 私钥，appid 等验证，以及加解密模式设定
 */
@Data
public class Context implements Serializable {
    /**
     * appid 开发者id
     */
    private String appId;
    /**
     * 开发者私钥，用于签名，加密，解密等
     */
    private String appKey;
    /**
     * 为空是否参与签名默认false
     */
    private boolean emptySign;
    /**
     * 数据类型：json,form,query {@link com.open.httpauto.HttpDataType}
     */
    private String dataType;
    /**
     * 加密解密类型 如：md5,aes
     */
    private String digest;
    /**
     * 默认值 如签名后 大小写 lower/upper 不设置不做任何操作
     */
    private String upperLower;
    /**
     * AES  私钥
     */
    private String key;
    /**
     * AES  iv偏移量
     */
    private String iv;
    /**
     * AES 模式 {@link cn.hutool.crypto.Mode}
     */
    private String mode;
    /**
     * AES  padding类型 {@link cn.hutool.crypto.Padding}
     */
    private String padding;
    /**
     * 排序类型 如：ASCII
     * 默认按照 ASCII
     */
    private String sort;
    /**
     * 签名连接 key
     */
    private String signKey;
    /**
     * 时间戳类型 {@link com.open.httpauto.TimestampEnum}
     */
    private String timestamp;
}
